#@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED999+FREE SECTORS COPYING---D1:BOLDASH2.EXEl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 170ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uPASCAL.DOC|{1nYq 5))AJ)C0ٴ+eI .bP$b8y99pXPLNi0p2@ )"0*AЀT}Tbab)" dLSf1oC'㜀r fBˆ%͘:mʸyJPASD;8L7f2q n΀TN[2"–S#8l}YbY6kFNڤKAaU}]' ?iwqm¸)I\6&Sv2|鼹}3Y}pL,p #KFdua!.@v}iPu7\Є`!K4n H!_CO=ppOjsΧxr܄pj<&e+SPD>9!4l^D.Z}2'PxT^]#۰9r>h07lNOl*(tbN R[C=wO#koEQ0 /lLP0I,KfB u S[}a `9Z- ȲR zw9#n9HC4 L) tHqtNn@^lgS4"0,KZфKhDGDR$lcb1\}&P8yц, +؄ N[$ ] a%(l. u0^$e q "?ԐRX ij?8)eb:[h9X7duA$'E82}L5]}ď/1SVBg)tCD 0k '4 Nb}rxЇrmA?Dw,N`p^d)mkl%U=ѩq^?Q]cK>aRn#ԑ 2' m(։Rjq뮅 (P?I{Nd5ڂc}(趃q}mi}kz9f5cc]FYͱ8'd,i <bM 7\ipα֝-t)@ӫJ6oȃq萇f dfbY%,&d}E%!A~ۀ=NcL0cXCA1ˣ7 Ȱ 1P-(*̗2a5Gw zU 3ia8צqW]bNh* a $v<=P3Oe}~F:2Q1DaiĢt7A s.@% )u:_?6'M/U.3ؤͰI0B "8E`pf_ I`BZ5Dd-gf}FR~O^sN@OOwS TUXTBwg~Q}a8TOf!zP O0E@U E`lbgEqw]eq[1mQA!C8/fJ{z9Eg}=0,sA{mc!?u:."5sbtg`H'aobGQBo#ANC0!Ou`Q6A4{OՂMxƱ{aSo%*IyYM&h!dh}^*%G8$0JtbM)|xqr[sVd0"0lDbw(xgyL6G4 z71%)TFaeM ʢ3xVE)6h^w9G]{i}=;mr"1WeOHQX-]3)T_"e%hA5iySչMm 3'v?@S}5vgg-#r]}o}vz6gX-'1a8k0,rpV 7tuyQlnqz*tV u\Qbn lm`NuTfAa"r԰ѧh,2m0%ˑ#?(p}G~@ŗw\zƈL()X")zEs"{|wdQU-n'2`Ї)ߊxaFzXd$pq%FgH/n(l*kn`!1 q}ԏ h]7š/f1%E!n\QRwu}/ƴɄp-خ,M&;̟эkW<+9,> b@ "YvߺεtK"s@Ҝ# ,e-ш7IRYZ> LjO ψ%^`v}izy?!KU%;daEDMq@}BOBpA3UDpE=(J424 *}DFCDu@`GGSGd4+48I@IcIJ48EqJRJ44CACDg,,MPQ,-<CS}ADu@"CQHKAODpEӞE @H 0BpJ0rc (=CCOOTLq0>0 PrwC0-(}f$SF}. ,ԧq.@౛]oL.0=ʢii.oe%o`"sO.`<(ml-ACDg,,MPQ,-cC_h3JC/4=}>@L6RF8'=i!6wcq =HK0-lz© Ee41 (x4ERQ:Q ʪ2O;71 31/}G QI<;022VJ{,:`| BPG`#CgAGP()#Sgxy()sX=;027p6xT028pW=p}:5>29pxQG`41ghI=.0`41ghBPG`41 g.J=Vz1N3p`BPG`41@gK=+;@p9g}ۿRJ3(+0)IW1 )4sK(+,)4sK(+,)41gPпTI2@-)40qK}(@N-p2@-)4StK(+, 4I;@ 1pK(@N-,)4tK(+, 4K;@ 3pK(@N-pI42@}g ~D@ 5p~D@LgG42pg)8FX9  G| пO@I*42:~DACDg,,MPQ,-vCLf}R;?nCSGdjUd>0F0N!Z%&Gj24!CAX54h=>@E}H >@:OpK Eɳ ##:`k,,pWX,G; '0/?&4y#N3BPG`#CgAGP()#Sgx}y()sX=;027p6xT028pW=p:5>29pxQG`41ghI=.0`41ghBPG`41 g.J=Vz1N}3p`BPG`41@gK=+;@p9g(2MI Sf3m)@`=gۿRJ3(+0)IW1 )4sK(+,)}41gPпTK8I;@gPпTI2@-)4StK(@N-p2@-)42gPпTK82@-)4tK(}@N-,)420gPпTI82@-)42@gPпT)@ 5p`G4t~D@ 7p ~D@ 8pc=9(2~}D`G)@ 9G,0,@,@FI\,,,X?>C0a&s%[u4!CEUEGQ__&DMDD4W9홼]T}L #4 #CQS@QOTLq0>0GGs,0,@,@FI\,,,X?>K0E|BfҨL͞4!C2:}l2O;71tC+}5!a.CA`(g-1A2A9OoE.Q^N0P.i|<4ِpH"?.i4B,|}wD Vӣ,z9zKVl.QsGa NSg L6R!4N8nsIf]!.|/0xK }Eɳ VJ{,:`| 0#Ep|0 p:XpH0;pT>qy()A1 ׁ:0A1xTpT}AJ%=p:5~T!  Ep|T1.I=.0`A3@B"Ep|TaaJ=Vz1~TA<BPG`A5@@K=+};pTa +(*0/I3+*p/2;pT K(+,)A1AK(+,)AA<PпTI2@-)A}BPпT+4I;pTPпTK82@-)ADpAPпTIK;pTQ K(+, 4K;pTa K(}@N-pI1G1.G1 ~D Q ʪ2O;71b01pA )8FX9  G| пO@I*1@~D04pMDp}1NEps000ó0s0ك1<?܊{u@;NN* DaE sH`g7ei@9}S=^AP8@ tXOQ|2wSlot<0>,E> (ĜӁm ./R@N`487|_BE::Sΐmp3C }6?<3T<<<=,D==q &}$4!;@S%68 84 j  .@#E.Qχ0}?.i5,B0 K}YKq.]o8=ʂx4iDyFO`"s_`E.0j24a/t ʪ2O;71 -= A0Br*opI471}f=r v0Re; _S0sSR>goZw%rcL!6Kpz .A7"rclz |AI9"'1/W(z-Rqz}oA@alP20~-x̋HQQ$jrpk+brR+G/Q%M49`QʥX#` !a_Ĝ tef7ԧ}- r嶭'"]HmLjR qYxmV_tBqwtBQ;3;gCS-{4iBŪ( Y3V!b}qYxmV_tBq'`-D3Cɣ8Eqe~20вN{]5 5R֒U:/?V&a<=,D&d}9ٜ4GKTw4r)PvFTTn’!(.iF(-ѐނ8-1j‡"+_= h:p8U !-5k'iA.tP}'nLURy ࠩ9XqALz ƙ)UDE)B==P{l. *`m?(9ban8h+lRYU)\U}DT$be.qqԋ,!-Rg6A2A1@~^;.Z5ق!\rn’L2``ܪ{biham`EI9!1}_Br2(aT/E=o2K{!#|f9,ڴGڏ^cw2(1A[ zI*M$:%[d;rܶ`9Ҙߋ^m})C7r@ASfHi#L7f@qCGN2s&L&ݸAB9aƔ1$iB9cł'B\80l@N錔SL΁T ֙cqM><< "(a}A BKYLr>D߿7 =P0`! g0Y|LaLrySGfҰ2͒y@ ] "QG.}#sN7DsNe&͚idR}g` yM1h@)=FLL2Y*sր@0L7bչ1Bq4AɱoPtdwjmt$MttbÅFER ܁PA7Gus^bH}&e18PAmluo'TF~*Fek\I(^%rTBUBumu\Fv:fDؘuTo\)RN DDaetv .Atʍo܁dUr4b}&LNNa4y$Efe\\ HO4EL!0byI}Y?k'B*iYd.9gA|$NiTt TQedrn \}oDGHaZs$losXZ1dXL8T*GVL&3QdfhZirh @%ۑ"nIl_vtWW!%nvuA}0TLvRKzaC %Xh@͑&ODXD&T~:BH;S!!z}˟>UJ |UZq0i2%De$C u˼Be0b;}?jB椴3d놸Eĸ݄lM^9EL9ypȖ~ ZIuefĒ_|P?$lu3@lssJvbDUIE@9,hҒ]GsI }ݎsU敕A.CU$n? qT%3@dgQWo4d<@ = ޠd62SP)i& f'$8rctSJ l~d= N U+((+{Irda H"%&a7٦n} SvULT:%Ȑ'G22S mm0Jp9>o@+.K_Zd[? #Pc 3˃ҶDA0);C.`#͘}2.+%z52[4@e) h^ )Msa% $0@0Yr&/Ћ@a8aWPՑD*OT!NS}MB2I)dU%d d L?4[S%4ZX3Z7 !ƵNA@0pt NTafbE=)QH7нe{1$ brh}Q:85g@J9ܑ7*.A2h&p (△#\ ! Tx۬9S !#lIr*H -9Bdb,`*]R']Dh}Di1t"TI4ydd„@ZrCvig,n7peP>nsl;'tvGA?$i&J3jiᵘE7\Љ[v}kNJ[`N,հ1L[5UFms1f=:D u0fߌ;Cw<(٪^\Tԡt5wm8YEOA4"&uAaj˷M}uK^3²nF]4C@ hJ*8nĸ[:rɋȩV) fKjŔ;$N>UZz-ʶBzdyVd,Kk"& r̆ew}h I};  b*b@+P}R Z倄f1!6Ɨ!37!G>[礟MA`ʗp\i%}>QO.O7Q1xV.AC'k>t,P}c?CjVք?1_fi"%T+rk6AQMA1z/׀y?(sU8XA;W"~;Vsrg}>Ud/*hK[2b@Ea "a%3}Mewupf(UFx+:3!G!1N=BH9ASG<r=e{eDZZDkj2cTcd ٓFElj)PwbP! e>'3}eu ]R~"B")u0BzEGKR%6;Ai!nsA0 QEcy6%<fagGב`8h'P tt6mv+vnHŒG}!5O%ݘV>#MCv}h{@UrC.D'%TWqtcn$14iHtD3fQuwTOf⎑guG7ut[IP"AuAl}DpfPB( 9*X(go 9Xh8aVzU!֒+BjA3@VY7fxpfsҒ##CtwtƏt'ŕ  B 2wH %4q?U}Ҕiqh(#Qy}VrC%W(;q#G)2mf8gf!}r qyV#s)9X\]%ل$#nptrAd)!y~PI}JU[b'j(N#V2'H2R xdUIWita!^ u(Z`ucnWIWk7Xq>Ȃ%PNROQt~/f+3i T}^Jh"P5I;wy0!z#c[G'*u*-jidiiU*u@ E%TL)j\eInaA$$X;aB3^C\aFR}.#WCB*4x:z>Æ!1 Fa 6ei0pKTzGtĂj)cH)?ɋH8ʊV uq7~fI8h Doh/kws I}ULaC$MU%H#EAUg3EQeP9&[r掓-JsjA}4w[3m!,4=*T+,d:ɒtI(&RbKU7*x菼~s76}JC#"sѶK !#l'@2J**КJoj_2!h?2=yK1{4GWi`ґ*k.`Ć1Ji:!}6!*)Gɇ-[$0Y"Wm?;1GR{W M!T 023Wf7vv =\SܕD0\rYKx#IZn˭Ȣk֐i f6CO%Mn!HS%G:QJI[^$Rl}5r,=8b8$[WXQQ+ąلCs@n&#xYtOE4x(3S3|g"6a)4mUJ.d/"2ҦYܺf޺MMzH2CZ{ @A,#wAY?}L|:AɆ-%!?Rlw\U.aV"I FP:$)8ڿ؂|McV55UVM37d'Kd&q(ׅHZ{/'m}> `82մYRgo5'Yޕ`qp2nyE|uv~ÂUAiiyYK̵[lfU1+w!yJtD2hMCi}5*ҫi{ZȑΣkiL7\'r9i|:gP9G"!Hez\?U'Yf~dˊ3Zi& &&_siSՄnASP>(Xt[}rQfufq 0d()̼̌μ|hpk,}Os@-PHnzs1?Z3ihu0HU\A"Ou!RNop=S8qcNdw$"☴ULbc=}d녓Ä(l SXHOCqri1R"NDt3mjɋ" qKg\Nl["fN\TQ)vUĈo'ÁLWriiʋ3"}V'yOsf! wUBv5z'q1T68T"A=myZG>?Ep'~"ykB^!WG 1p.?nU bQW_j3"}s+pq18>\D!3#'Ij̹iT7NCi93e *Ǻx zfiJA uR}?(yxǧ%ΔV uJg*}.$ 71r% z+p=\V An Y0Pן45F~:dm;NKJ$+onJ|GRp"V5kDdt(}qPA3!'2R)G*jiOLf4egkt0Rp"H!i E@etHege6[d`)iN݇@RG܄]pn;ұa54H@"q\I]Yz:};)tRNS®A>N O8 zϞ-6Aɡv9*@Ì +($0X *{20s_nQ&\N̡`}#ƕIt u<ɔq(}'pF8+4?uM6DGJ.^4(І /tlK4qFrB}r}W {e=xм;"я$Һ WE\[%xLQ}*ꕄhBK GֶS,"CD1/ċ3j4;fj,+tsIK2rӶcY>ϝ0e=՛ C@Rʄ%;"ei:'}V_+[%^4:Q&Hl"qJ8'P@^J$ž#g;qn-b>k uh~6f,$q#h8k,a3kKfU2!}˵*e`}Ϭ}fp]4DOV!0)[de`}ȯ>jr"4v,݇ %8?3|:s6k#43w(0q_L;. P kCH}6||gi&53?,u6N0d`)m_}_v([l~kJIҹt T.+Gx#d`)m_}_:IPvퟢ4zrffXLf߻J'l*f)<{$~8}a Z$;GeV3#J7B\Hџ0de]ʼnYRu*elS_I8i"~sR4\^j;d`)aOsq$1$oLW"W}405zv?a!]JȤ gţ)q,$/p0jq]H.}0[JP:46A,H]fS0;1=~ܮf)d\ `}݇@OP]:=\֕[#g*b3taV!q]qcvRV!0ejr"̵kP݇ns:n6΋C¯e51V]of)A,V'K=}1D SGm8C#L=<&S++t"E1F,1wUZb5UxPGb?MAJtaVi0kK287b\Te{R6I!vU7_aL}>׺5!f5SD/3Kf:,eae݇y!/aIB˵f}${cVČ.Lf2!]f)C-"Kdr/t%I}.a|bVČ"~Ly<1( m.1EBidW" c qC^z&'Zǟ¯\eATvrcX^@<*K8sHP[ar}wd ?9aRK'kԯƾ]NOu&'"{([OE5P90RT2wRPKP(P5,04RE\*"15*T:0V +}E[m*H.7c%nvH6q$0+++Ts4|z($0-++Tł#GnJ3q{(4,!%}֞wG]'ATя$ ^15Uf. {V m艨 505zv!PoK_a~rSꁩibKRft}rPjr"!r<]?eN*>c r/?_:p.BJQh:AFF/pTuKDL* B E,$DpCpa!A[D助h}A1kDu2'<`"Q聞!ݏJO`?5ݏJO`?vQuSaCO`?(vQu~i:EapPim}d131e}*=KoKُ'pbU6pAP)&U SSК>4~tTe6#'pCL+|YW_6я$w]Zsj, /trA}P)&U SSK3u߮*i'DCzD+*/5VGn#y'|AP)&U SSts4ĊIWH!5oKa@IV`K9Џfu&}'ub8Dt5 kf\l(m8P ZbSoKُ+qb8DpvƉۙ&'ȝT"r~3u&'V?|GUilE"'((C@}Q7+[*Ư!MgwGN.QV$n飉ZVWu&'toKG~i7aߝ,l"qơD:Z<0A T<}i2TL^,s$⋡v2A 0b.kҔЏgV=.3r9ήsvi20\E yjPV&'ROb8Dp*9N.1DeD}H]l>t #ֵ4,1uA.;sg`C"1\h\(.9T LD7Jס昍3|C@Rs6cV'K>luE"raW?q)}ɅC@R-@Od!bvKQɔwA20wV:!efsp[~.u\86wW,`dR?PPCcM8Ql~sȬDO'}P;&zc8lvdDvDqV$:UÒh\. \8sȬR1]i}DzJQs]'wy݆R[KDoRfil0PGoKٯCVW}y: y=n^$/"rn{,\8 Pkycu:,Sa|7E. dWNؿ$;هSʰ&S|@#4Da!,}-T )H,Br;2jr"TF$:vz*QqfIC@$dnuECB`?FPBIeB0(:(TPG -;FA@DbFPBI}eD@RVP+)BEpҲi/FA C@APF&lU(TOPFA C@A(`:TLiR AA RYN1 J.R A[ },*]OTFPBIeCCtr:(TPG -;FBPG(i$LAP O0E@c$)BODpމ~")i$ON A R }CPD0F2AL0R") 0!)/x>th/m@1BC2h/m@2B.cBCtPԐ!D;C0!)/x>th/m }@1BC2h/m@2B.cBCtPԐE6m@x BD`с0HR HbFPBIe4H (r)CA ; L }RCPD0F(Oi()LbP O0E@c$)*N):0 }R(G&ihy1V'K1i!2V'K2 >&OY`U(TOPFYG,Q;,q R8R(G `U(TOPF2(` }:TLhTT `U(TOPFC`TTLItr:TLFrP O0E@c$)r;F-T )& RCPD0F)BEG,Q;,0ie;F'f }iDO`?P O0E@c$)DSiDRWbP O0E@c$)D Ap)XY;FDP2N RCPD0FBU,;FD`fP O0E@c$)D` }T0R, ,0,@)b PO`()LPFEL()(RCPD0FRXb;nX0ܐFPBIeTX(`:TLP }pXFPBIeTXVP+)L;AТ,a*`*t`=IK)IK!j?BFbK:xAOpNb2OPq;U(T }OitObXP O0E@c$)G)YXY;FG AH\P O0E@c$)G AHSN)iIEِP O0E@c$)HMPMVte };buu:,= rBt; rBtE6m@2i(&fP O0E@c$)iR@(.kiWK, }Q;)i(TPG -i*V?U\FPBIe*V?UTBEpҲiEPFS`?eU(TOPFKPY`4SBEpҲ-BFPBIed9 }tr:(TPG -;e `U(TOPFL(`:TL-CT )&lU(TOPFLCTP(,)BEpҲ-CTP O0E@c$)LC }(;OpFPBIeOp(`:TL- !PBVFPBIePBHBEpҲBFPBIePBVBEpҲi$?G AH }`RCPD0F"?G AHM.)iO@iO@iO@ RCPD0FO@EI@b&,0c[4B;FO@h `U(TOPFO@Dp;F }O!RCPD0FPB(oAPx,u2{y);FOTOKPYFOTOhOTOh(,!,>O n;F*F* }FPBIebDL')BEpҲD@ `U(TOPFHD-(:(TPG -; EPN `U(TOPFPPE#%:(TPG -; L } RCPD0FLTXY; O( RCPD0FO(TI@b&,0c[4B;(,{,\8 PkycNO RCPD0F }OE0R",`MW) `U(TOPFPSpx5,.:(TPG -; RCPD0F RCPD0FBP O0E@c$)N0~]+m,", }>p!n; RG AِP OpRMRG`U(TOPFP@RGN)BEpҲ=FG )P O0E@c$)P0FGP(;FRD }FLETDe$RCPD0FTD{VP+1VP+2.cVP+n;FLiF"DF`Ef`E6tt;.c S@m@RN@B]?"/iF }&iP O0E@c$)`iT{)iFW (&)P O0E@c$)`tRbE{)iDFh `U(TOPFdD(:(TPG -;F-C@KPY }FF*fRCPD0FiT,Lb(+,NR?Y)i4Hྐ$x1H$rHb$x1Hb$r`U(TOPF(`:TLi }4OP/RCPD0F2OP/V12PS5Y#,`%Cn)`с0QbFPBIe4Q (`:TLi4Q  `U(TOPFSR@(` }:TLi4A TEi4A FcP O0E@c$)b4(!oItr;FN `U(TOPFKN)BEpҲ<:3{,\8 Pky }c~bFPBIe4RVP+)!r;F!IpFPBIe4RGN)BEpҲi4R(GPwRCPO`\P O0E@c$)T A0E }F`;PwRCPOPFP O0E@c$)T A0ENBP O0E@c$)T A0EN';PwRPʲULCT& RCPD0FRNO0K) }idAྐFPBIedA(0L')BEpELidAbV+,',>N0~TeBV+,',>N0~A R }YN] JQ;FW(RCPD0FrAb(;FW")W")C./MOa3itRb pRbE{$1$2.c)B }W (V(,@KFAw@ >; pRbE{$ktd:A.c)itRbEe pRbEN{$1$2.c)BW (VL }(,@KFAw@ >; pRbEN{$ktd:A.c)iC@ RCPD0FC@L)iIP O0E@c$)XO }N,,u1APx ,;03hS@L*-#xS@L*-#j!!!apP#$u$ F#$@7l$ }HaɄL?u8I9gmD $QtAD@'EFhoeٜLHha 8ND6u$`F`WL'f#?u'U_Fx_LoK?; !}mw=MUj3' $Dpt*=}'RtaV[ !Q}D|Eoe!fe(wLWp.N&+xrFpE = "} %m'&oKُ;Y3k>c J9.aR /kMPMb 172,psHj {ki!BO_ͶHR5iU #}bRP:Y`?&l[#jPm,-RCp0SX'bRC3?b8h J1S(( -v,>P $RC $}Ep3.t'(hr<V@W 0T +c[O/R *6.@X i!=2gL4(h;EP $RC@A'6K2D %} '274sxهSMpbSvAA iRp"{]qSOS0_}8A'6K *V?UA@D-A-C@KPYUT-!OeV0A i@KPY`4EPNEÐF*v6VL,AE`9APO +}i4<HaA ˲!e O(S+W(,H+E LCT )@PK )4eWТ,i1Hb4\OeDLCT4 O`?1OP/ ,}pRbʒPXbaLG`&RAS+W (VLLbAE L!QP O0E@c$)SR i4C@L,O(A i>VXPB -}VRG A>6A TEgI&i@FLiQsRPgT IpQbci,PQF-BMh)ctK,O`?4l*O i .}h !bTT{U(aNT )4ThI!Ip`1c1305zv&=#BOLò_ s:uH"c2 /}+P#B e-1E=W*%;b ubV9Mh %dA#U,BQ|f կ* < >0!͇ 0} E=W>E=W<DG  =קDG ciV&* bBAbBNT03@s_nEp31cEp31 1}s*B,")TM )"*MP?SGP?>d05bVA4fl(Pv!Weص$5840q"Qԓ/ ⩪~"}taV!FYxp";b 9}m8NxCQtW$*Uv3%"~PӱƬABEa 87\9#fBԾD7"!E@֜L]|#V֚'Jg3O0B o +75=i)4#!ՔL-GP@I =}0}H҅gBRi QBUB $:IbSLpIO.PjƏ*xA iO`FiTC`wbapP11!! >}ubapPaGa&tBp.f[)`La:2sfp]B^zE!֖.un.aBfl'j?Wcl'3llT ?}D䄁SF(a  1 ("GM̙ȁN "D@)E,bI,6@M9 ڈ$iD7dL#4a(̘:tҼqh3 ۀ @}:o0$B0uA;f% ֔37ڶr!DfjS7wvc^>=4o}D* 12I,ⱓ7TfE{4sӰy1_co A}{G:uwcC:[p+Liζ䉓)(А|a^Q$t@U[C$Q5QDOHcE5sM=TU]wAUphEEcZ AQu`w1 B}߽{V^CvQc1uv4FIYnXF1gt(4`bq`C,8e$q*icC)V%Q4~0Q`ŘnGYPBdc|WyWqv!Uhj C}rEeؑQQ֞Hҡu+^v*taZC)Ŧa,A1/QrHl^:@ A0DL- E5THuWuaWjeTY4Zy `u!SV D}Y3nFud])=%$iPBg%&iu™gtR C˂R~GP*e9"CPDcޘr3> ѰؕQ6  E}Y (l xrwipRdƢec;RF -CMTqu |eEfX}ZƲ>zQ5+ dA'pJfΐCIDEeqT`Gm F}KZcY]YG=fvC .C7sJCֳ nD!sTpe%ssC(Raqo )n.Lr`:E.ϳhL9d G} UDw[_CVÿ"*㩨A1.X|Ո8J"H]Fգ˺AH4ݲC ~#_t5$RJ4yANlV@ ` H}9"#9iTTUѨ$%- LrNyx*9Ѝ)8bhgE\Aj- L%N6[J!a HV!Ō[!:;*OWzB(K-͈F I}o3uwR'yJ q" rAhs, I7]|,p)87)PAgRbn=iz[C&+.k$ʙ8ꕱa:Q Z!C8F/ J}RWl>N~ y3)OqC 26f EER-rx㔆:%Dž!$ҽn`M?5fFL`ai.aNi-\`&\AfS CD O\ K}U}4, ]hlن<.\0Y{JxqH(TF2Nh]IfE3SUXEQ*I&U rLq*Yʔբ{ܰ<2d%l[t^M c"6XTIHطai\8:dD6295n3ϲ`I@{QHAY N}dw3º, ge{C{nV:!Rn,v1ҁVKoǸuӱ X j1 r.,5F|A (5D O}e6 DLUQk:G$Ca~'AC$S@w5 ApMP`a@*#@"d SH9$L Q! /Xm 8R I%E%uY@ l-H8R18;$ P}^@;†Dorpasdoc.txt`)scAM RЩ#M 8a:lDJ). !EET 2i!Ќ7m@P)"I'AiN0 nΔw(Lڄ iȀF4vBI7 r:fId)W|34a!lؕu"SFN4nb R}u^A55\؈"F 3Zp#yA c8SS‡/nFd-€aJ~=4dRwQ DTs5] vyGa)Ƙy4bPQ S}v}Gx>! z1PDyvh~?IH!D5QsqF-$` 5C.,ؠ @H_Fo0dkFmj LQj\FCA T}PhxZoҢroB! B9JGBiaTzJ 1DEs.T+m&*lj LQj\FCA d DRAPER PASCAL Version 2.1 V} Copyright 1989 by Norm Draper For the Atari 400, 800, XL, o W}r XE series computers Disk Based Documentation This document contains the "G X}etting Started" section plus other sections from the actual Draper Pascal manual. It is designed to get you up Y} and running and doing useful things with Draper Pascal in a very short time. It does not, however, contain a detaile Z}d description of all the Draper Pascal definitions or pretend to be a comprehensive tutorial or user's referenc [}e. Registered users will receive the actual Draper Pascal manual which does contain a complete description of \}all definitions plus other information. Details on registering are in the last section titled "Registration For ]}m". Draper Pascal 2.1 Table of Contents ^} Table of Contents The ShareWare Concept --------------------------------- 2 Features ----------------- _}----------------------------- 3 Introduction ------------------------------------------ 5 What is Pascal? - `}------------------------------------ 5 What is Draper Pascal? ------------------------------ 5 About this a} manual ----------------------------------- 5 What is Draper Pascal made of? ---------------------- 5 Abo b}ut the DOS --------------------------------------- 6 Ramdisk support ------------------------------------- 6 c} Getting Started --------------------------------------- 7 The Main Menu ----------------------------------------- 1 d}4 1 - Run Program ------------------------------------- 15 2 - Disk Directory ----------------------------- e}----- 15 3 - Compile Program --------------------------------- 15 4 - Edit a Program ---------------------- f}------------ 15 5 - Exit to DOS ------------------------------------- 15 6 - List a file ------------------ g}------------------- 16 7 - Trace on ---------------------------------------- 16 The Editor ------------------ q}B%DOS SYSB*)DUP SYSSPASDOC ARCIUPASCAL DOCPASDOC TXT-------------------------- 17 General Prompts ------------------------------------- 18 The Commands ------- r}--------------------------------- 19 A - Add line(s) at end ---------------------------- 19 C - Change s}line(s) -------------------------------- 19 D - Delete line(s) -------------------------------- 19 E - t}Edit line(s) ---------------------------------- 20 F - Filer menu ------------------------------------ 20 u} A - Append file --------------------------------- 20 D - Directory list ------------------------------ 20 v} L - Load file ----------------------------------- 20 S - Save file --------------------------------- w}-- 21 I - Insert before line ---------------------------- 21 L - List line(s) ------------------------- x}--------- 21 M - Menu ------------------------------------------ 21 P - Print line(s) ----------------- y}---------------- 21 Q - Quit ------------------------------------------ 22 S - Scan line(s) ----------- z}----------------------- 22 X - Exit to Compiler ------------------------------ 22 The Compiler ------------ {}------------------------------ 23 The Supervisor ---------------------------------------- 26 Pascal Definitions |} ------------------------------------ 27 System Information ------------------------------------ 32 Reserved Wo }}rd List ------------------------------------ 33 Operators --------------------------------------------- 34 Erro ~}r Messages ---------------------------------------- 35 Registration Form ------------------------------------- 38 } 1 Draper Pascal 2.1 The Shareware Concept } The Shareware Concept Draper Pascal is distributed on a Shareware basis. You may use } Draper Pascal without charge for the purpose of evaluating it's suitability for your use. If you find that Drape }r Pascal is worth continuing to use, then you are requested to become a registered user and gain the additional } benefits that go along with it. Simply complete the registration form and mail it in to us with the very reaso }nable payment of only $15.00. When you register your copy of Draper Pascal, you'll receive the latest version of the } software if your registered version is not current, along with a comprehensive printed user manual. If y }ou have received this copy from a Users' Group, "Software Library" or "SIG", and have paid a small fee (usually $3 to }$10), you have NOT acquired the registered rights or continued right to use Draper Pascal. This fee was for the } convenience of obtaining the diskette with Draper Pascal on it. The fee does NOT apply to the registration fee }. You may freely copy Draper Pascal for distribution under the Shareware concept, without charge. You }may NOT charge any fee for the Draper Pascal program or documentation without our written approval. You may NO }T distribute Draper Pascal or it's documentation in connection with ANY commercial venture, product, publication or } service unless you obtain the royalty-free license by registering. } 2 Draper Pascal 2.1 Features } Features * Draper Pascal is a complete package allowing the user to create, compile, and execu }te programs written in the Pascal language. * Many features from both UCSD and ISO standard Pascals plus m }any extensions, such as sound and graphics, to make use of the versatile Atari hardware. * Pasca }l structured programming features, including IF-THEN-ELSE, WHILE-DO, CASE-OF-ELSE, FOR-TO/DOWNTO-DO, and REPEAT-UNT }IL are included. * FUNCTIONs and PROCEDUREs using local or global variables. Integer type variab }les can be passed directly. * Data types supported include: Character, String, Integer, Real, Boolean, Rec }ord, and File. One and two dimension arrays are also supported for all data types other than File and Record. } * Only one disk drive and 48K RAM are required. Multiple, and double density, disk drives are supported. } * Machine language subroutines may be loaded and called. * Program chaining is supported. * No limit on } source program size. "Include" files are supported. * One-pass compiler generates pseudo code directly. } * Maximum program pseudo code size is about 30K bytes. * Textual compiler error messages. * Execut }ion debugging features include instruction trace and stack display. * Special options for error display an }d break key disable. * Single keystroke program execution repeat, exit to DOS, or exit to Main Menu progra }m are featured. * Includes Editor program to create, modify, and print Pascal source files, or other text }type files. * Includes Main Menu program (Pascal source included) for easy select of Compiler, Editor, or }utility functions, such as directory or file listing. Main Menu program may be replaced with a user writt }en program to create a turnkey operation. 3 Draper Pascal 2.1 } Features * Ramdisk support. Details provided to registered users. * Works w }ith most popular versions of DOS. * Easy to use. No linking required. Compile and execute immediately. } * Royalty free license available to registered users. * Includes sample programs. * Comprehensive us }er manual provided to registered users. Complete examples and BASIC equivalents given for each reserved w }ord. 4 Draper Pascal 2.1 } Introduction Introduction Draper Software welcomes yo }u to the world of Pascal for the Atari 400/800, XL, and XE series Computer systems. W }hat is Pascal? Pascal is a high-level structured programming language developed by Niklaus Wirth in 1971. It i }s easy to understand and well suited for program development and maintenance. What is Dr }aper Pascal? Draper Pascal is not a "standard" Pascal. It has a number of commands which are exactly like ISO }and UCSD versions, some which are similar, and many "extensions" which bring out the true power of the Atari co }mputer in an easy to use manner. It was designed to require only one disk drive for operation, but not be limited to } only one. At this time, it has been shown to work with all hardware and software configurations where enough mem }ory is provided. This implementation also has a number of commands which are familiar to Atari BASIC users, suc }h as POKE, PEEK, SETCOLOR, NOTE, POINT, etc.. About this manual This manual is } intended to familiarize you with all the features of Draper Pascal. It is not intended to teach you how to program } in Pascal. However, if you already know Atari BASIC, then you can understand the Pascal statements more easily by } referring to their BASIC equivalents shown after the definition of each Pascal reserved word in the complete m }anual provided to registered users. It is recommended that you read this manual completely to be familiarized w }ith its features and restrictions. What is Draper Pascal made of? This implementation of Pa }scal is made up of three main components. They are the Supervisor (sometimes referred to as runtime routines), }the Compiler, and the Editor. The Supervisor is a high performance machine language program which simulates a 16-bit } pseudo computer. The Compiler translates Pascal source code into pseudo-code instructions to be executed by the }Supervisor. The Editor is used to enter and modify Pascal source programs. It may also be used to edit data fil }es, or BASIC programs which have been LISTed to a disk or tape. These components are explained in detail within } this manual. For a description of the various files included on the supplied diskette, refer to the 'System I }nformation' section. 5 Draper Pascal 2.1 } Introduction About the DOS Draper Pascal can be used with most popular Dis }k Operating Systems. It has been tested with Atari DOS 2.5, SpartaDOS 3.2d, and MYDOS. You should format a disk }ette with DOS on it to contain the Draper Pascal system. Since the Draper Pascal Supervisor is named AUTORUN.SY }S, it will execute immediately after the disk is booted. For XL and XE computers, you do not need to hold down the } Option key while booting unless you are using SpartaDOS. If using SpartaDOS, you may want to rename AUTORUN.SYS to } PASCAL.COM and create a STARTUP.BAT file containing the following two lines: BASIC OFF PASCAL } This documentation file is not required to be on that same diskette. Ramdisk supp }ort Draper Pascal supports the use of the "Ramdisk" capability provided by using a DOS that supports a ramdisk } like Atari DOS 2.5 or SpartaDOS 3.x with an Atari computer system having sufficient memory to support the ramd }isk. While using this feature, the Editor takes less than two seconds to load and the Compiler takes less than }three seconds. Details on setup and use of this feature are provided in the complete manual provided to registered use }rs. 6 Draper Pascal 2.1 } Getting Started Getting Started This section is intended to show by exam }ple how to use the Draper Pascal system. You will edit, compile, and run a sample program. Information displaye }d by the computer is shown in normal type while responses to be entered by you are shown underlined with dashes } (---). To begin with, make sure you have 48K RAM installed and no cartridge in place. Boot the disk now by placing it } in disk drive 1 and turning on the power to the Atari computer. After the Supervisor has finished loading, you } will see a screen that looks like this: DRAPER PASCAL VERSION 2.1 } 1 - Run Program 2 - Disk Directory 3 - Compile Program 4 - Edit a Progr }am 5 - Exit to DOS 6 - List a file 7 - Trace on Copyrigh }t 1989 by Norm Draper 4 Select the Editor - } 7 Draper Pascal 2.1 Getting St }arted DRAPER SOFTWARE EDITOR A - Add line(s) at end } C - Change line(s) D - Delete line(s) E - Edit a line F - Filer menu } I - Insert before line L - List line(s) M - Menu P - Print line(s) } Q - Quit S - Scan line(s) X - Exit to Compiler A,C,D,E,F,I,L,M,P,Q,S,X,?->F } Select Filer menu - A - Append file D - Directory list } L - Load file S - Save file L Load a file } - Enter filename -> SAMPLE1 Enter the name of the file ------- } to be loaded. The name of the last file edited, } compiled, or run will be filled in by the Editor. } You may have to overtype it with the name } shown. A,C,D,E,F,I,L,M,P,Q,S,X,?->L List the file on the - s }creen Line from -> Just press RETURN for - 'Lin }e from' and 'Line to'. Line to -> This will give a list of - } the entire program in memory. } 8 Draper Pascal 2.1 Getting Started 1:PROGRAM KALEIDOSC }OPE; 2:VAR I,J,K,W,X:INTEGER; 3:BEGIN 4: MAXGRAPH(19); 5: GRAPHICS(19); 6: X:=0; } 7: REPEAT 8: FOR W:=3 TO 50 DO 9: BEGIN 10: FOR I:=1 TO 10 DO 11: BEGIN } 12: FOR J:=0 TO 10 DO 13: BEGIN 14: K:=I+J; 15: COLOR(J*3/(I+3)+I*W/12); } 16: PLOT(I+8,K); 17: PLOT(K+8,I); 18: PLOT(32-I,24-K); 19: PLOT(32-K,2 }4-I); 20: PLOT(K+8,24-I); 21: PLOT(32-I,K); 22: PLOT(I+8,24-K); 23: P }LOT(32-K,I) 24: END 25: END 26: END 27: UNTIL X=99 (* UNENDING LOOP *) 28:EN }D. A,C,D,E,F,I,L,M,P,Q,S,X,?->I Let's insert a comment - before }line 15. Line -> 15 -- 15: (* MY FIRST EDIT *) Enter the data to be } ------------------- inserted when prompted for 16: line 15. Just pres }s RETURN - when prompted for line 16. } This will terminate insert mode. A,C,D,E,F,I,L,M,P,Q,S,X,?->L } List again to verify that - the change was made } correctly. Line from -> - Line to -> - 1:PR }OGRAM KALEIDOSCOPE; 2:VAR I,J,K,W,X:INTEGER; 9 Draper Pascal 2 }.1 Getting Started 3:BEGIN 4: MAXGRAPH(19); 5: GRAPHICS(19); } 6: X:=0; 7: REPEAT 8: FOR W:=3 TO 50 DO 9: BEGIN 10: FOR I:=1 TO 10 DO }11: BEGIN 12: FOR J:=0 TO 10 DO 13: BEGIN 14: K:=I+J; 15: (* MY FIRST } EDIT *) 16: COLOR(J*3/(I+3)+I*W/12); 17: PLOT(I+8,K); 18: PLOT(K+8,I); 19: } PLOT(32-I,24-K); 20: PLOT(32-K,24-I); 21: PLOT(K+8,24-I); 22: PLOT(32-I,K); } 23: PLOT(I+8,24-K); 24: PLOT(32-K,I) 25: END 26: END 27: END } 28: UNTIL X=99 (* UNENDING LOOP *) 29:END. A,C,D,E,F,I,L,M,P,Q,S,X,?->F Let's save the program } - back to disk drive 1 under the sa }me name. A - Append file D - Directory list L - Load file S - Sa }ve file S - Enter filename -> SAMPLE1 ------- A,C,D, }E,F,I,L,M,P,Q,S,X,?->X Now let's exit directly to - the Compiler. } 10 Draper Pascal 2.1 Getting Started } Draper Software Pascal Compiler Version 2.1 Copyri }ght 1989 by Norm Draper Enter Filename: SAMPLE1 Ente }r name of program to ------- be compiled. The name of } the last program edited, compiled, or run will be } filled in by the Compiler. Enter List Out }put Filespec Default is E: Just press RETURN at this - } point to have the compile list directed to the } screen. 0000 PROGRAM KALEIDOSCOPE; 0000 VAR I,J,K,W,X:INTEGER; 0003 BEGIN 00}03 MAXGRAPH(19); 0017 GRAPHICS(19); 001B X:=0; 001E REPEAT 0022 FOR W:=3 TO 50 DO 002}A BEGIN 0035 FOR I:=1 TO 10 DO 003D BEGIN 0048 FOR J:=0 TO 10 DO 004F BEGIN} 005A K:=I+J; 0062 COLOR(J*3/(I+3)+I*W/12); 008A PLOT(I+8,K); 0098 PLO}T(K+8,I); 00A6 PLOT(32-I,24-K); 00B8 PLOT(32-K,24-I); 00CA PLOT(K+8,24-I); 0}0DC PLOT(32-I,K); 00EA PLOT(I+8,24-K); 00FC PLOT(32-K,I) 010A END 010A} END 010C END 11 Draper Pascal 2.1 } Getting Started 011C UNTIL X=99 (* UNENDING LOOP *) 0142 END. 0147 ADDR NAME } ---- -------- 0003 I 0004 J 0005 K 0006 W 0007 X 5 Compiler table entries used  } *** Program Execution Completed *** Press the SELECT key at Highest Stack Address Used = $AFF8 this point  }to take us to Repeat,Menu,Exit If you press }the START key, your Pascal program will execute again from the beginning. If you press the SELECT key, control will be} transfered to the main menu program (INIT.PCD). If you press the ESC key, you will exit to the DOS utility men}u. You also have two other options at this point. They are both used for debugging purposes. If you press CTRL-}S (the 'S' key while holding down the CTRL key), the stack values, at termination time, will be displayed. If y}ou press CTRL-T, the internal trace table, if active, will be displayed. With either of these two debugging opt}ions, you will be asked where the display should be sent by the prompt 'WHERE? (FILESPEC)'. To see it on the screen, e}nter 'E:'. It also may be sent to printer or disk by following normal filespec naming conventions. If the displ}ay is sent to the screen, you may stop the scrolling by use of the space bar. Press the ESC key if you have see}n enough and wish to return to the Supervisor termination prompt. Any other key causes scrolling to continue as } normal. 26 Draper Pascal 2.1 Pascal Defini}tions Pascal Definitions Syntax is shown below for each of the Draper Pascal rese}rved words. The complete manual provided to registered users, however, contains COMPLETE definitions, COMPLETE} sample programs demonstrating the use of each reserved word, as well as BASIC equivalents. ABS } FUNCTION ABS(Number):INTEGER; ADDR FUNCTION ADDR(Var):INTEGER; AND ARCTAN } FUNCTION ARCTAN(Var):REAL; ARRAY ARRAY[Number1] OF Type ARRAY[Number1,N}umber2] OF Type ASC FUNCTION ASC(Cvar):INTEGER; BEGIN BLOAD PROCEDURE BLO}AD(Program); BOOLEAN CALL PROCEDURE CALL(Address); CASE CASE expr1 OF con}st1 : stmt1; const2 : stmt2; ... } constn : stmtn END; CASE expr1 OF const1 : s }tmt1; const2 : stmt2; ...  } constn : stmtn ELSE stmtx END; CHAR  } CHR FUNCTION CHR(expr1):CHAR; CLOSE PROCEDURE CLOSE(File); COLOR PR }OCEDURE COLOR(Number); 27 Draper Pascal 2.1  } Pascal Definitions CONCAT PROCEDURE CONCAT(Parm1,Parm2,...):STRING; CONST CONST} name1=value1; name2=value2; ... COPY FUNCTION COPY(Source,Index,Length) : STRING; COS } FUNCTION COS(Var):REAL; CVTREAL FUNCTION CVTREAL(Ivar):REAL DEG PROCEDURE DE}G; DELETE PROCEDURE DELETE(Source,Index,Size); DIV DOS PROCEDURE DOS; } DRAWTO PROCEDURE DRAWTO(X,Y); DUMPSTK PROCEDURE DUMPSTK; DVSTAT PROCED}URE DVSTAT(A,B,C,D); END EOF EOF(File); EOLN EOLN(File); EXIT } PROCEDURE EXIT; EXP FUNCTION EXP(Var):REAL; EXP10 FUNCTION EXP10(Var)}:REAL; FALSE FILE FOR FOR var := expr1 TO expr2 DO statement; } FOR var := expr1 DOWNTO expr2 DO statement; FUNCTION GOTOXY PROCEDURE GOTOXY(X,Y); GRAP}HICS PROCEDURE GRAPHICS(Number); HIMEM PROCEDURE HIMEM(Value); } 28 Draper Pascal 2.1 Pascal Definitions IF IF} expr1 THEN stmt1; IF expr1 THEN stmt1 ELSE stmt2; INSERT PROCEDURE INSERT(Sour}ce,Destination,Index); INTEGER IORESULT FUNCTION IORESULT:INTEGER; KEYPRESS FUNCT}ION KEYPRESS:INTEGER; LENGTH FUNCTION LENGTH(svar):INTEGER; LN FUNCTION LN(Var):R}EAL; LOCATE FUNCTION LOCATE(X,Y):INTEGER; LOCK PROCEDURE LOCK(Filename); LO}G FUNCTION LOG(Var):REAL; LPENH, LPENV FUNCTION LPENH:INTEGER; FUNCTIO}N LPENV:INTEGER; MAXGRAPH PROCEDURE MAXGRAPH(Mode); MOD NOT NOTE PROC}EDURE NOTE(Iocbno,Sector,Byte); ODD FUNCTION ODD(iexp); OPEN PROCEDURE OPEN(File}no,Aux1,Aux2,Filename);; OPTIONKEY OPTIONS OPTIONS(Opt1,Opt2,...,Optn); OR ORD  } FUNCTION ORD(Realvar):INTEGER; PADDLE FUNCTION PADDLE(Number):INTEGER; PEEK !} FUNCTION PEEK(Address):INTEGER; PLOT PROCEDURE PLOT(X,Y); POINT PROCEDURE POI"}NT(Iocbno,Sector,Byte); 29 Draper Pascal 2.1 #} Pascal Definitions POKE PROCEDURE POKE(Address,Value); POS FUNCTION POS(Pa$}ttern,Source):INTEGER; PROCEDURE PROCEDURE Name; PROCEDURE Name(Parm1,Parm2,...,Pa%}rmn); PROGRAM PROGRAM Name; PTRIG FUNCTION PTRIG(Number):INTEGER; PURGE &} PROCEDURE PURGE(Filespec); RAD READ, READLN PROCEDURE READ(File,Var1,Var2,...Varn); REA'}L RECORD REPEAT REPEAT Stmt1; ... ;Stmtn UNTIL Condition; RESET PROCEDURE RE(}SET(File,Filespec); REWRITE PROCEDURE REWRITE(File,Filespec); RND FUNCTION RND(Iexp)}):INTEGER; SELECTKEY SETCOLOR PROCEDURE SETCOLOR(Register,Hue,Luminance); SHL *} Expr1 SHL Expr2 SHR Expr1 SHR Expr2 SIN FUNCTION SIN(Var):REAL; SOUND+} PROCEDURE SOUND(Voice,Pitch,Distortion,Volume); SQR FUNCTION SQR(Var):REAL; SQR,}T FUNCTION SQRT(Var):REAL; STARTKEY STATUS PROCEDURE STATUS(Iocbno,Ivar); S-}TICK FUNCTION STICK(Number):INTEGER; 30 Draper Pascal 2.1.} Pascal Definitions STR FUNCTION STR(Var):STRING; STRIG /} FUNCTION STRIG(Number):INTEGER; STRING TRACEOFF PROCEDURE TRACEOFF; TRACEON 0} PROCEDURE TRACEON; PROCEDURE TRACEON('Number); TRUE UNLOCK PROCEDURE 1}UNLOCK(Filespec); VAL FUNCTION VAL(Svar):INTEGER or REAL; VAR VAR Name1,Name2,.2}..,Namen : Type; VAR Name1,Name2,...,Namen : ARRAY[Number] OF Type;3} WAIT PROCEDURE WAIT(Number); WHILE WHILE Condition DO Statement; WRITE 4} WRITE(File,Expr1,Expr2,...); WRITE(File,Expr1:Fldwdth...); WRITE5}(File,Expr1:Fldwdth:Numdec...); WRITELN WRITELN(File,Expr1,Expr2,...); WRITELN(F6}ile,Expr1:Fldwdth...); WRITELN(File,Expr1:Fldwdth:Numdec...); XCTL PROCEDURE 7}XCTL(Filespec); XIO PROCEDURE XIO(Number,File,Aux1,Aux2,Filespec); 8} 31 Draper Pascal 2.1 System Information 9} System Information The Supervisor uses zero page locations $A0 - $BF. Locations $80 - $9F are ava:}ilable for your use if desired. Various locations between $D4 and $FD are used by the floating point routines. Page ;} six ($600 - $6FF) is available for your use and not used by the Pascal system. The Supervisor is loaded i<}nto memory by DOS at the address $1D7C. If this memory location is not available, then an error message is give=}n, along with an explanation of the probable cause of the problem. The pseudo code program to be executed is loaded in>} memory immediately after the end of the Supervisor. The pseudo machine stack extends from the end of the pseud?}o code program to the MEMTOP position, just before screen memory. Filename Descriptions@} The files named below are included in this ARC file: AUTORUN.SYS Supervisor object code A}COMPILER.PCD Compiler pcode EDITOR.PCD Editor pcode INIT.PCD Main Menu pB}code INIT.PAS Main Menu Pascal source EXPLNERR.PCD Error code explainor (used by CompC}iler) RSVDWRDS.TXT Reserved word list (used by Compiler) ERRORS.TXT Text for compile erD}rors (used by EXPLNERR.PCD) RAMDISK1.DAT Ramdisk setup (See complete manuaE}l) RAMDISK2.DAT Ramdisk setup (See complete manual) RAMDISK3.DAT Ramdisk setup (See complF}ete manual) NOTITLE.OBJ Used to suppress title (See complete manual) G} SAMPLE1.PAS Kaleidoscope sample program source SAMPLE2.PAS Roman numeral sample program souH}rce PASCAL.DOC This introduction manual 32 I} Draper Pascal 2.1 Reserved Word List Reserved Word ListJ} ABS DEG FUNCTION ODD READLN STRING ADDR DELETE GOTOXY OF REAL THEN K} AND DIV GRAPHICS OPEN RECORD TO ARCTAN DO HIMEM OPTIONKEY REPEAT TRACEOFF L} ARRAY DOS IF OPTIONS RESET TRACEON ASC DOWNTO INSERT OR REWRITE TRUE M} BEGIN DRAWTO INTEGER ORD RND UNLOCK BLOAD DUMPSTK IORESULT PADDLE SELECTKEY UNTIL N} BOOLEAN DVSTAT KEYPRESS PEEK SETCOLOR VAL CALL ELSE LENGTH PLOT SHL VAR O}CASE END LN POINT SHR WAIT CHAR EOF LOCATE POKE SIN WHILE CHP}R EOLN LOCK POS SOUND WRITE CLOSE EXIT LOG PROC SQR WRITELN CQ}OLOR EXP LPENH PROCEDURE SQRT XCTL CONCAT EXP10 LPENV PROGRAM STARTKEY XIO CONSTR} FALSE MAXGRAPH PTRIG STATUS COPY FILE MOD PURGE STICK COS FOR NOT S} RAD STR CVTREAL FUNC NOTE READ STRIG T} 33 Draper Pascal 2.1 Operators U} Operators Operator Operation ________ _________V} := assignment arithmetic: + addition W} - subtraction * multiplication / or DIVX} division MOD modulo (remainder after Y} division) Relational: = equality <> Z} inequality < less than > grea[}ter than <= less than or equal to >= greater than\} or equal to Logical: OR AND NOT ]} 34 Draper Pascal 2.1 Error Messages ^}Error Messages COMPILE TIME ERROR MESSAGES 01: Compiler table overflow (max 170) 02: _}Number expected 03: '=' expected 04: Identifier expected 05: Constant type identifier, number, or string co`}nstant expected 06: 'BEGIN' expected 07: Too many nesting levels 08: ':' expected 09: '.' expected a} 10: ';' expected 11: Undeclared identifier 12: Invalid type of identifier 13: ':=' expected 14: 'b}END' expected 15: ';', 'ELSE', or 'END' expected 16: 'THEN' expected 17: '#' expected 18: 'DO' expectc}ed 19: '#' or FILE type identifier expected 20: '[' expected 21: ']' expected 22: ')' expected d}23: Illegal factor or identifier type 24: INCLUDE file nesting too deep 25: 26: 'OF' expected 27: Mise}matched data types 28: 'TO' or 'DOWNTO' expected 29: 'UNTIL' expected 30: Range error 31: '(' expectef}d 32: ',' expected 33: Literal too long or missing end quote (') 34: 'END' but no RECORD started 35: g}Incorrect number of parameters 36: INTEGER type identifier expected 37: STRING type identifier expected 38:h} REAL type identifier expected 39: CHAR type identifier expected 40: FILE type identifier expected 41: HEX i}type identifier expected 42: STRING constant expected 35 Drj}aper Pascal 2.1 Error Messages EXECUTION TIME ERROR MESSAGES k} INDEX TOO HIGH This message occurs if an attempt is made to storl}e a string array element into an occurance that is higher than defined for the variable. m} For example, if you tried to store the twentieth entry of an array that was onlyn} defined to hold ten occurances, you would get the message. This messago}e only applies to string arrays since other array types are not checkedp} for valid occurance numbers. UNABLE TO OPEN DEBUG IOCB (7) This message is issued if thq}e list output device you specify in response to the 'WHERE? (FILESPEC)'r} prompt cannot be opened. The prompt is issued only for the debug features s} trace and stack display. CIO ERROR xxx FOR IOCB # y Some kind of Input-Output operatt}ion was performed which resulted in an abnormal return code from the Atu}ari operating system. Refer to your BASIC or DOS manual for the meaning of v} the error number 'xxx'. 'y' is the IOCB number which the error occured on. Note that this w} message will not be printed if OPTIONS(0) is in effect. In this case it is x}your responsibility to check the return code by interrogating IORESULT y}after each I/O type instruction. AT OFFSET This message accomz}panies some other error message and refers to the offset within the pse{}udo code of the instruction that had the error. Refer to the offset shown on your |} compile listing to determine the Pascal instruction that experienced the error.}} 36 Draper Pascal 2.1 Error Messages ~} STOPPED BY KEY This message indicates that execution of the } program was stopped because the BREAK key was pressed. The offset of the instruction } executing is shown in the 'AT OFFSET' message. Note that this message will not oc}cur (and the program will not stop after BREAK is pressed) if OPTIONS(4}) is in effect. INSUFFICIENT MEMORY This message indicates that an attempt was } made to increase the value of the stack pointer to a value which would overlay s}creen memory or the trace buffer, if the trace was active. It may also }be caused by manipulation of a record without sufficient room between t}he top of the stack and the top of available memory (MEMTOP) to temporarily hold it. INVA}LID OPCODE This message should not occur. It indicates that a pseudo i}nstruction was encountered which is invalid. If you get this message, it } means that your '.PCD' file has been corrupted somehow or an XCTL was made to a file that was } not a pseudo code file. To correct, re-compile the program in question. I}t may also occur if you attempt to run a Draper Pascal program which wa}s compiled under a previous release of this software. } 37 Draper Pascal 2.1 Registration Form } Registration Form When you register for a fee of only $15.00, you will receive a copy of the latest versi}on of the Draper Pascal manual. Also, if a later version of the software is more current than the version you }are registering, you will receive a diskette containing it. In addition to all relative information in this manual, th}e complete manual provided to registered users contains the following: * Complete Draper Pascal reserv}ed word definitions * Complete Draper Pascal example programs demonstrating the use of each reserved word} * BASIC equivalents for each reserved word, where applicable * Information on setup and use of a Ramdisk fo}r Draper Pascal. After proper initialization, the Editor will take less than two seconds to load and the }Compiler will take less than three seconds. Also, the default drive will be automatically set to the Ram}disk. * A royalty-free, non-exclusive license to allow you to distribute software developed using Draper P}ascal * Complete Draper Pascal source listings for the Editor, Main Menu program, Ramdisk initialization p}rogram, and sample programs * Editor command summary * Information on how to suppress the title s}creen from being displayed * Trace format descriptions * Internal data format descriptions } * Notes on printer usage with Draper Pascal * Technical support, by mail, at no charge If you purchased }Draper Pascal directly from Draper Software in your own name, then your copy is already registered and you will } recieve all the benefits of registration. You do not need to send in a registration form. If you received Dr}aper Pascal some other way, you may register your copy by filling out the following form and mailing it to the }listed address along with your check or money order. 38 Draper Pascal 2}.1 Registration Form ================================================================} Draper Pascal 2.1 Registration Form Mail payment to: Draper Software } 307 Forest Grove Drive Richardson, TX 75080-1939 Texas residents: Please add }8% tax. Note: Please allow three to five weeks for delivery. NAME _________________________________________} COMPANY (if any) ______________________________ ADDRESS ______________________________________ CITY/}STATE ___________________________________ ZIP __________________ Where did you obtain this copy of Draper }Pascal? _________________________________________________ _________________________________________________} _________________________________________________ ============================================================}==== 39==================================================== IReturn-path: Received: from TERMINATOR.CC.UMICH.EDU by STONY-BROOK.SCRC.Symbolics.COM via INTERNET w}ith SMTP id 804594; 5 Jun 90 17:45:35 EDT Received: from iris.ucdavis.edu by terminator.cc.umich.edu (5.61/1123-1.0) id AA13}858; Tue, 5 Jun 90 17:44:35 -0400 Received: by iris.ucdavis.edu (5.57/UCD.EECS.2.0) id AA15772; Tue, 5 Jun 90 14:42:40 PDT D}ate: Tue, 5 Jun 90 14:42:40 PDT From: hulse@iris.ucdavis.edu (C. Andy Hulse) Message-Id: <9006052142.AA15772@iris.ucdavis.edu}> To: jrd@terminator.cc.umich.edu Subject: pasdoc.uue This is a uuencoded archive of pasdoc.uue, the documentation archive }for Draper Pascal. See pascal.arc for more info. uue This is a uuencoded archive of pasdoc.uue, the documentation archive 2R